package com.vogue.supplymall.common.domain.validate;

import javax.validation.Constraint;  
import javax.validation.Payload;  
import java.lang.annotation.Documented;  
import java.lang.annotation.Retention;  
import java.lang.annotation.Target;  
import static java.lang.annotation.ElementType.*;  
import static java.lang.annotation.RetentionPolicy.*;  

@Target({ FIELD, METHOD, PARAMETER, ANNOTATION_TYPE })  
@Retention(RUNTIME)  
//指定验证器  
@Constraint(validatedBy = RegexValidator.class)  
@Documented
/**
 * 正则表达式验证
 * @author Administrator
 *
 */
public @interface Regex {

	//默认错误消息  
    String message() default "The format is incorrect";  
  
    //指定的属性名
    String name() default "name";
    
    //验证的正则表达式 也可以指定某种类型 tel 代表电话 不用自己再传入了
    /**
     * 验证的正则表达式  <br>
     * 也可以指定某种类型 <br>
     * tel 代表电话 <br>
     * email 代表邮箱  <br>
     * vernum 系统版本号 <br>
     * @return
     */
    String regexcontent() default "tel";
    
    //分组  
    Class<?>[] groups() default { };  
  
    //负载  
    Class<? extends Payload>[] payload() default { };  
  
    //指定多个时使用  
    @Target({ FIELD, METHOD, PARAMETER, ANNOTATION_TYPE })  
    @Retention(RUNTIME)  
    @Documented  
    @interface List {  
    	Regex[] value();  
    }  
}
